﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Cesave.Domain.PermisosModule.Entities;

namespace Cesave.Domain.PermisosModule.Contracts.CiclosFechas
{
	public interface ICiclosFechaService
		: IDisposable
	{
		/// <summary>
		/// 
		/// </summary>
		/// <param name="ciclosFecha"></param>
		void AddCiclosFecha(CiclosFecha ciclosFecha);

		/// <summary>
		/// 
		/// </summary>
		/// <param name="ciclosFecha"></param>
		void ChangeCiclosFecha(CiclosFecha ciclosFecha);

		/// <summary>
		/// 
		/// </summary>
		/// <param name="juntaGuid"></param>
		/// <returns></returns>
		List<CiclosFecha> FindCiclosFechasByJunta(Guid juntaGuid);

		/// <summary>
		/// 
		/// </summary>
		/// <param name="juntaGuid"></param>
		/// <param name="cicloGuid"></param>
		/// <returns></returns>
		List<CiclosFecha> FindCiclosFechasByJuntaAndCiclo(Guid juntaGuid, Guid cicloGuid);

		/// <summary>
		/// 
		/// </summary>
		/// <param name="juntaGuid"></param>
		/// <param name="fromDate"></param>
		/// <param name="toDate"></param>
		/// <returns></returns>
		List<CiclosFecha> FindCiclosFechasByJuntaAndDateRange(Guid juntaGuid, DateTime fromDate, DateTime toDate);

		/// <summary>
		/// 
		/// </summary>
		/// <param name="cicloGuid"></param>
		/// <param name="fromDate"></param>
		/// <param name="toDate"></param>
		/// <returns></returns>
		List<CiclosFecha> FindCiclosFechasByCicloAndDateRange(Guid cicloGuid, DateTime fromDate, DateTime toDate);

		/// <summary>
		/// 
		/// </summary>
		/// <param name="juntaGuid"></param>
		/// <param name="cicloGuid"></param>
		/// <param name="fromDate"></param>
		/// <param name="toDate"></param>
		/// <returns></returns>
		List<CiclosFecha> FindCiclosFechasByJuntaAndCicloAndDateRange(Guid juntaGuid, Guid cicloGuid, DateTime fromDate, DateTime toDate);
	}
}
